package nextel.usuario.bean;

import nextel.PropertiesMovil;
import pe.com.nextel.rms.DataInputStreamX;
import pe.com.nextel.rms.DataOutputStreamX;
import pe.com.nextel.rms.PersistenteX;
import java.io.IOException;
import org.kxml2.io.KXmlParser;
import org.kxml2.io.KXmlSerializer;
import pe.com.nextel.util.Fecha;
import pe.com.nextel.util.List;
import pe.com.nextel.util.StringUtils;

/**
 * Clase que contiene los datos del usuario que iongresa a la aplicacion
 * @author eespinoza
 */
public class UsuarioBean extends PersistenteX {
    
    public String codigo;
    public String login;
    public String password;
    public String nombres;
    
    //* FLAGS DE PERMISOS *//
    public String motivo;
    public String gps;
    public String foto;
    
    //la ultima ruta
    public int idRecordRuta;
    public short posicionRuta;
    
    public int cantidadVista;
    public int cantidadNoVisita;
    public int totalAtender;
    
    public long fechaRuta = Fecha.getDate().getTime( );
    
    public String fechaMovil = "";
    
    
    /**
     * Persiste la clase usuario de la aplicacion
     * @param dataOutput
     * @param vector
     * @throws java.io.IOException
     */
    public void persistir(DataOutputStreamX dataOutput, List vector) throws IOException {
        dataOutput.writeString(StringUtils.stringNullToBlank(login));
        dataOutput.writeString(StringUtils.stringNullToBlank(codigo));
        dataOutput.writeString(StringUtils.stringNullToBlank(password));
        dataOutput.writeString(StringUtils.stringNullToBlank(nombres));
        dataOutput.writeString(StringUtils.stringNullToBlank(motivo));
        
        dataOutput.writeString(StringUtils.stringNullToBlank(gps));
//        dataOutput.writeString(StringUtils.stringNullToBlank(ruta));
        dataOutput.writeString(StringUtils.stringNullToBlank(foto));
       // dataOutput.writeString(StringUtils.stringNullToBlank(ultimoEstado));
        dataOutput.writeInt(idRecordRuta);

        dataOutput.writeShort(posicionRuta);
        
        dataOutput.writeInt(totalAtender);
        dataOutput.writeInt(cantidadVista);
        dataOutput.writeInt(cantidadNoVisita);
        dataOutput.writeLong(fechaRuta);
        
        dataOutput.writeString(StringUtils.stringNullToBlank(fechaMovil));
    }
    
    /**
     * Recupera la clase usuario de la aplicacion
     * @param dataInput
     * @return
     * @throws java.io.IOException
     */
    public List recuperar(DataInputStreamX dataInput) throws IOException {
        login = (dataInput.readString( ));
        codigo = (dataInput.readString( ));
        password = dataInput.readString( );
        nombres = dataInput.readString( );
        motivo = dataInput.readString( );
        
        gps = dataInput.readString( );
//        ruta = dataInput.readString( );
        foto = dataInput.readString( );
   //     ultimoEstado = dataInput.readString( );
        idRecordRuta = dataInput.readInt( );
       
        posicionRuta = dataInput.readShort( );
         totalAtender = dataInput.readInt( );
        cantidadVista = dataInput.readInt( );
        cantidadNoVisita = dataInput.readInt( );
        
        fechaRuta = dataInput.readLong();
        
        fechaMovil = dataInput.readString();
        
        
        return null; /* No retorna nada por que solo se usa un solo usuario por aplicacion*/
    }
    
    /**
     *  <u u="01" c="123" e="1"/>
     **/
    public void writeXMLObject(KXmlSerializer writer) throws IOException {
        
        writer.startTag(null, "u");
        writer.attribute(null, "c", StringUtils.stringNullToBlank(codigo));
        writer.attribute(null, "l", StringUtils.stringNullToBlank(login));
        writer.attribute(null, "p", StringUtils.stringNullToBlank(password));
        
        writer.attribute(null, "nxt", PropertiesMovil.nextel);  
        writer.attribute(null, "sid", PropertiesMovil.simId);  
        writer.attribute(null, "im", PropertiesMovil.imei);  
        writer.attribute(null, "ip", PropertiesMovil.ip);  
        writer.attribute(null, "ptn", PropertiesMovil.numeroTelefonico); 
        writer.attribute(null, "li2", PropertiesMovil.linea2);
        
        writer.attribute(null, "f", StringUtils.stringNullToBlank(fechaMovil)); // fecha 
        writer.endTag(null, "u");
        
    }
    
    public void readXMLObject(KXmlParser parser) throws IOException {
        
        codigo = (parser.getAttributeValue(null, "c"));
        nombres = (parser.getAttributeValue(null, "n"));
      //  ultimoEstado = (parser.getAttributeValue(null, "es"));
      
// bandera
        motivo = (parser.getAttributeValue(null, "mo"));
        gps = (parser.getAttributeValue(null, "gs"));
//        ruta = (parser.getAttributeValue(null, "rt"));
        
        foto = (parser.getAttributeValue(null, "ft"));
        
    }
}
